/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Entities;

import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author Cristian
 */
@Entity
@Table(name = "sclbtblibros")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Sclbtblibros.findAll", query = "SELECT s FROM Sclbtblibros s"),
    @NamedQuery(name = "Sclbtblibros.findBySclbtblibrosid", query = "SELECT s FROM Sclbtblibros s WHERE s.sclbtblibrosid = :sclbtblibrosid"),
    @NamedQuery(name = "Sclbtblibros.findByTitulo", query = "SELECT s FROM Sclbtblibros s WHERE s.titulo = :titulo"),
    @NamedQuery(name = "Sclbtblibros.findByNombre", query = "SELECT s FROM Sclbtblibros s WHERE s.nombre = :nombre"),
    @NamedQuery(name = "Sclbtblibros.findByFechapublicacion", query = "SELECT s FROM Sclbtblibros s WHERE s.fechapublicacion = :fechapublicacion"),
    @NamedQuery(name = "Sclbtblibros.findByYearpublicacion", query = "SELECT s FROM Sclbtblibros s WHERE s.yearpublicacion = :yearpublicacion"),
    @NamedQuery(name = "Sclbtblibros.findByAutoresadiciona", query = "SELECT s FROM Sclbtblibros s WHERE s.autoresadiciona = :autoresadiciona"),
    @NamedQuery(name = "Sclbtblibros.findByIsbn", query = "SELECT s FROM Sclbtblibros s WHERE s.isbn = :isbn"),
    @NamedQuery(name = "Sclbtblibros.findByNombrearchivo", query = "SELECT s FROM Sclbtblibros s WHERE s.nombrearchivo = :nombrearchivo"),
    @NamedQuery(name = "Sclbtblibros.findByVolumen", query = "SELECT s FROM Sclbtblibros s WHERE s.volumen = :volumen"),
    @NamedQuery(name = "Sclbtblibros.findByEditorial", query = "SELECT s FROM Sclbtblibros s WHERE s.editorial = :editorial"),
    @NamedQuery(name = "Sclbtblibros.findByRevisionpares", query = "SELECT s FROM Sclbtblibros s WHERE s.revisionpares = :revisionpares"),
    @NamedQuery(name = "Sclbtblibros.findByDescrevpares", query = "SELECT s FROM Sclbtblibros s WHERE s.descrevpares = :descrevpares"),
    @NamedQuery(name = "Sclbtblibros.findByIepi", query = "SELECT s FROM Sclbtblibros s WHERE s.iepi = :iepi"),
    @NamedQuery(name = "Sclbtblibros.findByValidoceaaces", query = "SELECT s FROM Sclbtblibros s WHERE s.validoceaaces = :validoceaaces"),
    @NamedQuery(name = "Sclbtblibros.findByValidadoceaaces", query = "SELECT s FROM Sclbtblibros s WHERE s.validadoceaaces = :validadoceaaces"),
    @NamedQuery(name = "Sclbtblibros.findByFecharegistro", query = "SELECT s FROM Sclbtblibros s WHERE s.fecharegistro = :fecharegistro"),
    @NamedQuery(name = "Sclbtblibros.findByObservaciones", query = "SELECT s FROM Sclbtblibros s WHERE s.observaciones = :observaciones")})
public class Sclbtblibros implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "sclbtblibrosid")
    private Integer sclbtblibrosid;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 300)
    @Column(name = "titulo")
    private String titulo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "nombre")
    private String nombre;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fechapublicacion")
    @Temporal(TemporalType.DATE)
    private Date fechapublicacion;
    @Basic(optional = false)
    @NotNull
    @Column(name = "yearpublicacion")
    private int yearpublicacion;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 255)
    @Column(name = "autoresadiciona")
    private String autoresadiciona;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "isbn")
    private String isbn;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "nombrearchivo")
    private String nombrearchivo;
    @Basic(optional = false)
    @NotNull
    @Column(name = "volumen")
    private int volumen;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "editorial")
    private String editorial;
    @Basic(optional = false)
    @NotNull
    @Column(name = "revisionpares")
    private boolean revisionpares;
    @Size(max = 400)
    @Column(name = "descrevpares")
    private String descrevpares;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "iepi")
    private String iepi;
    @Basic(optional = false)
    @NotNull
    @Column(name = "validoceaaces")
    private boolean validoceaaces;
    @Basic(optional = false)
    @NotNull
    @Column(name = "validadoceaaces")
    private boolean validadoceaaces;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fecharegistro")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fecharegistro;
    @Size(max = 255)
    @Column(name = "observaciones")
    private String observaciones;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "sclbtblibrosid")
    private Collection<Sclbtblibper> sclbtblibperCollection;
    @JoinColumn(name = "scthtbdatosgenid", referencedColumnName = "scthtbdatosgenid")
    @ManyToOne(optional = false)
    private Scthtbdatosgen scthtbdatosgenid;
    @JoinColumn(name = "scaltblineinveid", referencedColumnName = "scaltblineinveid")
    @ManyToOne(optional = false)
    private Scaltblineinve scaltblineinveid;

    public Sclbtblibros() {
    }

    public Sclbtblibros(Integer sclbtblibrosid) {
        this.sclbtblibrosid = sclbtblibrosid;
    }

    public Sclbtblibros(Integer sclbtblibrosid, String titulo, String nombre, Date fechapublicacion, int yearpublicacion, String autoresadiciona, String isbn, String nombrearchivo, int volumen, String editorial, boolean revisionpares, String iepi, boolean validoceaaces, boolean validadoceaaces, Date fecharegistro) {
        this.sclbtblibrosid = sclbtblibrosid;
        this.titulo = titulo;
        this.nombre = nombre;
        this.fechapublicacion = fechapublicacion;
        this.yearpublicacion = yearpublicacion;
        this.autoresadiciona = autoresadiciona;
        this.isbn = isbn;
        this.nombrearchivo = nombrearchivo;
        this.volumen = volumen;
        this.editorial = editorial;
        this.revisionpares = revisionpares;
        this.iepi = iepi;
        this.validoceaaces = validoceaaces;
        this.validadoceaaces = validadoceaaces;
        this.fecharegistro = fecharegistro;
    }

    public Integer getSclbtblibrosid() {
        return sclbtblibrosid;
    }

    public void setSclbtblibrosid(Integer sclbtblibrosid) {
        this.sclbtblibrosid = sclbtblibrosid;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public Date getFechapublicacion() {
        return fechapublicacion;
    }

    public void setFechapublicacion(Date fechapublicacion) {
        this.fechapublicacion = fechapublicacion;
    }

    public int getYearpublicacion() {
        return yearpublicacion;
    }

    public void setYearpublicacion(int yearpublicacion) {
        this.yearpublicacion = yearpublicacion;
    }

    public String getAutoresadiciona() {
        return autoresadiciona;
    }

    public void setAutoresadiciona(String autoresadiciona) {
        this.autoresadiciona = autoresadiciona;
    }

    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public String getNombrearchivo() {
        return nombrearchivo;
    }

    public void setNombrearchivo(String nombrearchivo) {
        this.nombrearchivo = nombrearchivo;
    }

    public int getVolumen() {
        return volumen;
    }

    public void setVolumen(int volumen) {
        this.volumen = volumen;
    }

    public String getEditorial() {
        return editorial;
    }

    public void setEditorial(String editorial) {
        this.editorial = editorial;
    }

    public boolean getRevisionpares() {
        return revisionpares;
    }

    public void setRevisionpares(boolean revisionpares) {
        this.revisionpares = revisionpares;
    }

    public String getDescrevpares() {
        return descrevpares;
    }

    public void setDescrevpares(String descrevpares) {
        this.descrevpares = descrevpares;
    }

    public String getIepi() {
        return iepi;
    }

    public void setIepi(String iepi) {
        this.iepi = iepi;
    }

    public boolean getValidoceaaces() {
        return validoceaaces;
    }

    public void setValidoceaaces(boolean validoceaaces) {
        this.validoceaaces = validoceaaces;
    }

    public boolean getValidadoceaaces() {
        return validadoceaaces;
    }

    public void setValidadoceaaces(boolean validadoceaaces) {
        this.validadoceaaces = validadoceaaces;
    }

    public Date getFecharegistro() {
        return fecharegistro;
    }

    public void setFecharegistro(Date fecharegistro) {
        this.fecharegistro = fecharegistro;
    }

    public String getObservaciones() {
        return observaciones;
    }

    public void setObservaciones(String observaciones) {
        this.observaciones = observaciones;
    }

    @XmlTransient
    public Collection<Sclbtblibper> getSclbtblibperCollection() {
        return sclbtblibperCollection;
    }

    public void setSclbtblibperCollection(Collection<Sclbtblibper> sclbtblibperCollection) {
        this.sclbtblibperCollection = sclbtblibperCollection;
    }

    public Scthtbdatosgen getScthtbdatosgenid() {
        return scthtbdatosgenid;
    }

    public void setScthtbdatosgenid(Scthtbdatosgen scthtbdatosgenid) {
        this.scthtbdatosgenid = scthtbdatosgenid;
    }

    public Scaltblineinve getScaltblineinveid() {
        return scaltblineinveid;
    }

    public void setScaltblineinveid(Scaltblineinve scaltblineinveid) {
        this.scaltblineinveid = scaltblineinveid;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (sclbtblibrosid != null ? sclbtblibrosid.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Sclbtblibros)) {
            return false;
        }
        Sclbtblibros other = (Sclbtblibros) object;
        if ((this.sclbtblibrosid == null && other.sclbtblibrosid != null) || (this.sclbtblibrosid != null && !this.sclbtblibrosid.equals(other.sclbtblibrosid))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Entities.Sclbtblibros[ sclbtblibrosid=" + sclbtblibrosid + " ]";
    }
    
}
